home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-20
/
spkdsn_2.zip
/
ALPHA.ZIP
/
PLM75T27.BAS
< prev
next >
Wrap
BASIC Source File
|
1987-01-03
|
7KB
|
206 lines
10 REM Copyright 1987, Arnold B. Krueger, Grosse Pointe Woods, MI. 48236
20 N$ = "Mod MDM-75 Mod Eq MDT-27"
30 REM lower crossover
40 REM roll-on
50 F1 = .0001
60 Q1 = .707
70 REM roll-off
80 F2 = 3000!
90 Q2 = 1.5
100 REM lower driver
110 F3 = 600!
120 Q3 = 1.1
130 F4 = 6000!
140 Q4 = .6
150 REM midrange hi eq
160 F5 = 1E+07
170 Q5 = .707
180 REM upper crossover
190 REM roll-on
200 F6 = 3000!
210 Q6 = 1.1
220 REM roll-off
230 F7 = 10000000#
240 Q7 = .7
250 REM upper driver
260 F8 = 1300!
270 Q8 = 1.5
280 F9 = 14000!
290 Q9 = .7
300 REM tweeter hi eq
310 FA = 20000!
320 QA = 1.5
321 goto 330
325 stop
330 DEF FNPHLP1(W,WC,D) = ATN(W/WC)
340 DEF FNPHHP1(W,WC,D) = ATN(WC/W)
350 DEF FNPHLP2(W,WC,D) = -ATN( D*W /(WC*(1.000001-(W/WC)^2 ) ) ) + PI*(W>WC)
360 DEF FNPHHP2(W,WC,D) = ATN( D*WC/(W *(1.000001-(WC/W)^2 ) ) ) - PI*(W<WC)
370 DEF FNAMLP1(W,WC,D) = 1 / SQR(1!+(W/WC)^2)
380 DEF FNAMHP1(W,WC,D) = 1 / SQR(1!+(WC/W)^2)
390 DEF FNAMLP2(W,WC,D) = 1 / SQR(1+(W/WC)^4+(D*D-2!)*(W/WC)^2)
400 DEF FNAMHP2(W,WC,D) = 1 / SQR(1+(WC/W)^4+(D*D-2.000001)*(WC/W)^2)
410 DEF FNDBV(AMP) = 20!*LOG(AMP)*LOGCONV
420 DEF FNPHD(RAD) = 180!*RAD/PI
430 DEF FNSUMA(AA,AB,PA,PB) = SQR((AA*SIN(PA)+AB*SIN(PB))^2 + (AA*COS(PA)+AB*COS(PB))^2 )
440 DEF FNSUMPW(AA,AB,PA,PB) = SQR((AA*AA*SIN(PA)+AB*AB*SIN(PB))^2 + (AA*AA*COS(PA)+AB*AB*COS(PB))^2 )
450 DEF FNSUMPN(AA,AB,PA,PB) = AA*SIN(PA)+AB*SIN(PB)
460 DEF FNSUMPD(AA,AB,PA,PB) = AA*COS(PA)+AB*COS(PB)
470 DEF FNDIRF(AA,AB,PA,PB) = ABS((SIN((PA-PB))*(((AA >= AB)*AB/AA)+((AB > AA)*AA/AB) )))
480 PI = ATN(SQR(3!))*3
490 LOGCONV=1!/LOG(10!)
500 LOGCONV=1!/LOG(10!)
510 DIM FREQT(20)
520 FREQT(1)=20:FREQT(2)=22:FREQT(3)=25:FREQT(4)=28:FREQT(5)=32:FREQT(6)=36
530 FREQT(7)=40:FREQT(8)=44:FREQT(9)=50:FREQT(10)=56:FREQT(11)=64:FREQT(12)=72
540 FREQT(13)=80:FREQT(14)=88:FREQT(15)=100:FREQT(16)=112
550 FREQT(17)=128:FREQT(18)=144:FREQT(19)=160:FREQT(20)=180
560 SCREEN 2 : KEY OFF : CLS
570 XS = ( LOG(20000)-LOG(20) )*LOGCONV
580 W1 = 2!*PI*F1:D1 = 1!/Q1
590 W2 = 2!*PI*F2:D2 = 1!/Q2
600 W3 = 2!*PI*F3:D3 = 1!/Q3
610 W4 = 2!*PI*F4:D4 = 1!/Q4
620 W5 = 2!*PI*F5:D5 = 1!/Q5
630 W6 = 2!*PI*F6:D6 = 1!/Q6
640 W7 = 2!*PI*F7:D7 = 1!/Q7
650 W8 = 2!*PI*F8:D8 = 1!/Q8
660 W9 = 2!*PI*F9:D9 = 1!/Q9
670 WA = 2!*PI*FA:DA = 1!/QA
680 X = 1
690 LINE(52,1)-(639,1)
700 LINE(52,180)-(639,180)
720 FOR ROW = 22.5 TO 157.5 STEP 22.5
730 LINE(52,ROW)-(640,ROW),,,&hf000
740 NEXT ROW
770 FOR OCT = 0 TO 4
780 DECADE = 10^OCT
790 XSCALE = 75!*(LOG(20!*DECADE)-2.3)
800 LINE(XSCALE,1)-(XSCALE,180)
810 XSCALE = 75!*(LOG( 50!*DECADE)-2.3)
820 LINE(XSCALE,1)-(XSCALE,180)
830 XSCALE = 75!*(LOG(100!*DECADE)-2.3)
840 LINE(XSCALE,1)-(XSCALE,180)
850 XSCALE = XSCALE + 1
860 LINE(XSCALE,1)-(XSCALE,180)
870 FOR NOTE = 1 TO 20
880 F = FREQT(NOTE)*DECADE
890 IF F > 50000! THEN GOTO 1750
900 W = 2!*F*PI
910 XS = 75!*(LOG(F)-2.3)
920 rem IF TOGGLE = 0 THEN TOGGLE = 1 ELSE TOGGLE = 0
930 REM Lower xover calculations
940 REM Lower xover Amplitude
950 YLA = FNAMHP2(W,W1,D1)*FNAMLP2(W,W2,D2)
960 REM Lower driver calculations
970 REM Lower driver Amplitude
980 YMA = FNAMHP2(W,W3,D3)*FNAMLP2(W,W4,D4)*FNAMLP2(W,W5,D5)
990 REM lower system amplitude response
1000 SLA = YLA*YMA
1010 REM Pick something to plot
1020 YM = FNDBV(SLA)
1030 YM = (20!-YM)*4.5
1040 IF YM<10 THEN YM = 10
1050 IF YM>180 THEN YM = 180
1060 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1080
1070 LINE(XS,YM)-(OLDX,OLDYMA)
1080 OLDYMA = YM
1090 REM Lower xover Phase
1100 YLP = FNPHHP2(W,W1,D1)+FNPHLP2(W,W2,D2)
1110 REM Lower driver Phase
1120 YMP = FNPHHP2(W,W3,D3)+FNPHLP2(W,W4,D4)+FNPHLP2(W,W5,D5)
1130 REM lower system phase response
1140 SLP = YLP+YMP
1150 YM = FNPHD(SLP)
1160 YM = 90-YM/2
1170 IF YM>180 THEN YM = 180
1180 IF OCT=0 THEN IF NOTE=1 THEN GOTO 1200
1190 rem if TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYMP)
1191 line(xs,ym)-(oldx,oldymp),,,&hf0f0
1200 OLDYMP = YM
1210 REM Upper driver calculations
1220 REM Upper xover calculations
1230 REM Upper xover Amplitude
1240 YUA = FNAMHP2(W,W6,D6)*FNAMLP2(W,W7,D7)
1250 REM Upper driver Amplitude
1260 YTA = FNAMHP2(W,W8,D8)*FNAMLP2(W,W9,D9)*FNAMLP2(W,WA,DA)
1270 REM Upper system amplitude response
1280 SUA = YUA*YTA
1290 REM Pick something to plot
1300 YM = FNDBV(SUA)
1310 YM = (20!-YM)*4.5
1320 IF YM<10 THEN YM = 10
1330 IF YM>180 THEN YM = 180
1340 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1360
1350 LINE(XS,YM)-(OLDX,OLDYTA)
1360 OLDYTA = YM
1370 REM Upper xover Phase
1380 YUP = FNPHHP2(W,W6,D6)+FNPHLP2(W,W7,D7)
1390 REM Upper driver Phase
1400 YTP = FNPHHP2(W,W8,D8)+FNPHLP2(W,W9,D9)+FNPHLP2(W,WA,DA)
1410 REM Upper system phase response
1420 SUP = YUP+YTP
1430 REM pick something to plot
1440 YM = FNPHD(sUP)
1450 YM = 90-YM/2
1460 IF YM>180 THEN YM = 180
1470 IF OCT=0 THEN IF NOTE=1 THEN GOTO 1500
1490 rem if TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYTP)
1491 line(xs,ym)-(oldx,oldytp),,,&hf0f0
1500 OLDYTP = YM
1510 REM total system amplitude response
1520 SSA = FNSUMA(SLA,SUA,SLP,SUP)
1530 YM = FNDBV(SSA)
1540 YM = (20!-YM)*4.5
1550 IF YM<10 THEN YM = 10
1560 IF YM>179 THEN YM = 179
1570 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1590
1580 LINE(XS,YM)-(OLDX,OLDYSA)
1581 LINE(XS,YM+1)-(OLDX,OLDYSA+1)
1590 OLDYSA = YM
1620 SSA = FNSUMPw(SLA,SUA,SLP,SUP)
1630 YM = FNDBV(SSA)
1640 YM = (20!-YM)*4.5
1650 IF YM<10 THEN YM = 10
1680 IF YM>179 THEN goto 1710
1690 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1710
1700 rem IF TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYsp):LINE(XS,YM+1) - (OLDX,OLDYsp+1)
1701 line(xs,ym)-(oldx,oldysp),,,&hcccc
1702 line(xs,ym+1)-(oldx,oldysp+1),,,&hcccc
1710 OLDYSP = YM
1720 OLDX = XS
1730 REM end of loops
1740 NEXT NOTE
1750 NEXT OCT
1760 LOCATE 1,1
1770 PRINT USING "#### d";180;
1780 LOCATE 23,1
1790 PRINT USING "#### d";-180;
1800 LOCATE 12,1
1810 PRINT USING "### dB";0!;
1820 LOCATE 6,1
1830 PRINT USING "### dB";10!;
1840 LOCATE 17,1
1850 PRINT USING "### dB";-10!;
1860 LOCATE 24,4
1870 PRINT USING "### Hz";20!;
1880 LOCATE 24,19
1890 PRINT USING "### Hz";100!;
1900 LOCATE 24,40
1910 PRINT USING " ## kHz";1!;
1920 LOCATE 24,62
1930 PRINT USING "### kHz";10!;
1940 LOCATE 24,70
1950 PRINT USING "### kHz";20!;
1951 goto 325
1960 LOCATE 2,40
1970 PRINT USING " & ";N$;
1980 LOCATE 3,40
1990 PRINT USING " &";"Amplitude: Phase: ";
2000 LINE(450,20)-(465,20)
2010 LINE(550,20)-(565,20),,,&HF0F0
2020 LOCATE 4,20
2030 PRINT USING "Fl: ##### Q1: #.## F2: ##### Q2: #.## F3: ##### Q3: #.##";F1;Q1;F2;Q2;F3;Q3;
2040 LOCATE 2,1
2050 END